﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using TrabalhoSeven.Estados.Jogo;

namespace TrabalhoSeven.Estados.Menu {
	class Menu {

		Imagem fundo;
		Imagem logo;
		Imagem jogar;
		Imagem creditos;
		Imagem sair;
		Point pontoMouse;
		float[] corDefault;

		public Menu(ContentManager Content) {
			pontoMouse = new Point();
			corDefault = new float[] { 1.0f, 1.0f, 1.0f };
			this.fundo = new Imagem(Content.Load<Texture2D>("background"), new Vector2(0,0));
			this.logo = new Imagem(Content.Load<Texture2D>("logo"), new Vector2(280, 100));
			this.jogar = new Imagem(Content.Load<Texture2D>("botao_jogar"), new Vector2(360, 240), new Rectangle(360,240,100,40));
			this.creditos = new Imagem(Content.Load<Texture2D>("botao_creditos"), new Vector2(360, 300), new Rectangle(360, 300, 100, 40));
			this.sair = new Imagem(Content.Load<Texture2D>("botao_sair"), new Vector2(360, 360), new Rectangle(360, 360, 100, 40));
		}

		public void Update(MouseState mouse_atual, MouseState mouse_anterior) {
			pontoMouse.X = mouse_atual.X;
			pontoMouse.Y = mouse_atual.Y;

			this.jogar.CorRGB = this.creditos.CorRGB = this.sair.CorRGB = corDefault;

			if (this.jogar.Hitbox.Contains(pontoMouse)) {
				this.jogar.CorRGB = new float[] {1.0f, 0, 0};
				if ((mouse_atual.LeftButton == ButtonState.Pressed) && (mouse_anterior.LeftButton == ButtonState.Released)){
					Game1.estado_atual = GameConst.JOGO;
				}
			}
			else if (this.creditos.Hitbox.Contains(pontoMouse)) {
				this.creditos.CorRGB = new float[] { 1.0f, 0, 0 };
				if ((mouse_atual.LeftButton == ButtonState.Pressed) && (mouse_anterior.LeftButton == ButtonState.Released)) {
					Game1.estado_atual = GameConst.CREDITOS;
				}
			}
			else if (this.sair.Hitbox.Contains(pontoMouse)) {
				this.sair.CorRGB = new float[] { 1.0f, 0, 0 };
				if ((mouse_atual.LeftButton == ButtonState.Pressed) && (mouse_anterior.LeftButton == ButtonState.Released)) {
					Game1.estado_atual = GameConst.SAIR;
				}
			}
		}

		public void Draw(SpriteBatch spriteBatch) {
			fundo.Draw(spriteBatch);
			logo.Draw(spriteBatch);
			jogar.Draw(spriteBatch);
			creditos.Draw(spriteBatch);
			sair.Draw(spriteBatch);
		}

	}
}
